#pragma once
#include <string>
#include <iostream>


//Internal value class
//These are not the droids you are looking for
class Value
{
    public:
        Value() {};
        Value(int* s) {val = (void*)s;};
        //Value(std::string* s) {val = (void*)s;};
        Value(bool* s) {val = (void*)s;};

        Value(int s) {val = &s;};
        Value(std::string const& s) {sval = s;};
        Value(bool s) {val = &s;};

        void Set(int* s) {val = (void*)s;};
        void Set(std::string* s) {val = (void*)s;};
        void Set(bool* s) {val = (void*)s;};
        void Set(void* p) {val = p;};

        void* Get() {return val;};

        std::string& Gets() {return sval;};
    private:
        void* val;
        std::string sval;
};
